package com.groupten.Service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.groupten.Entity.TeacherEntity;

import java.util.List;
import java.util.Map;

public interface TeacherService extends IService<TeacherEntity> {

    /**
     * 新增老师信息
     * @param teacherEntity 老师实体
     * @return 新增是否成功
     */
    Boolean insertTeacher(TeacherEntity teacherEntity);

    /**
     * 根据姓名删除老师信息
     * @param TeacherName 老师姓名
     * @return 删除的个数
     */
    Integer deleteByName(String TeacherName);

    /**
     * 根据工号删除老师信息
     * @param TeacherNumber 老师工号
     * @return 删除的个数
     */
    Integer deleteByNumber(String TeacherNumber);

    /**
     * 查询所有老师信息
     * @return 全部老师
     */
    IPage<TeacherEntity> selectAll(Integer page, Integer limit);

    /**
     * 根据工号查询老师信息
     * @param TeacherNumber 老师工号
     * @return 该老师实体
     */
    TeacherEntity selectByNumber(String TeacherNumber);

    /**
     * 根据姓名查询老师信息
     * @param TeacherName 老师姓名
     * @return 该老师实体
     */
    TeacherEntity selectByName(String TeacherName);

    /**
     * 根据密码查询老师信息
     * @param Password 老师密码
     * @return 该老师实体
     */
    TeacherEntity selectByPassword(String Password);

    /**
     * 根据id查询老师信息
     * @param id 老师id
     * @return 该老师实体
     */
    TeacherEntity selectById(Long id);

    /**
     * 根据id更新老师信息
     * @param id 老师id
     * @param newData 要修改的数据 包括 字段名 和 新值
     * @return 更新是否成功
     */
    Boolean updateById(Long id, Map<String, String> newData);

    /**
     * 查询所有老师信息
     * @return 全部老师
     */
    List<TeacherEntity> selectAll();
}
